
/**********************************************************************************\
** 文件名称: Numctrl.c
** 创建人员: YCG
** 创建日期: 2018-12-21
** 文档描述:
** 版本代号: V0.1
** 版本说明: 初始版本
\********************************************************************************/
#include "numctrl.h"

/*******************************************************************************
** 函数名称: NumInit
** 功能描述: 初始化控制数据的大小
** 参数说明: yNumCtrl: [输入]    需要控制的数据
**			     yStep: [输入]       每次变化的步距
**			     yMin: [输入]        数据的最小值
**			     yMax: [输入]        数据的最大值
** 返回说明: None
** 创建人员: YCG
** 创建日期: 2018-12-21
********************************************************************************/
void NumInit(Numctrl_t *yNumCtrl, uint32_t yStep, uint32_t yMin, uint32_t yMax) {
	
    yNumCtrl->Num  = yMin ;      //初始化为最小值
    yNumCtrl->Step = yStep;      //设置步距
    yNumCtrl->Min  = yMin;       //设置最小值
    yNumCtrl->Max  = yMax;       //设置最大值
}

/*******************************************************************************
** 函数名称: NumSet
** 功能描述: 设置数据的值
** 参数说明: yNumCtrl: [输入/出] 需要控制的数据
**			     yNum: [输入/出] 设置的数据
** 返回说明: None
** 创建人员: YCG
** 创建日期: 2018-12-21
********************************************************************************/
void NumSet(Numctrl_t *yNumCtrl, uint32_t yNum) {
	
	  yNumCtrl->Num = yNum;    //直接赋值
	
	 if(yNumCtrl->Num > yNumCtrl->Max) {        //上限约束
        yNumCtrl->Num = yNumCtrl->Max;
			
    }else if( yNumCtrl->Num < yNumCtrl->Min)  //下限约束
		{
        yNumCtrl->Num = yNumCtrl->Min;
    }
}

/*******************************************************************************
** 函数名称: NumAdd
** 功能描述: 自加一个布局值
** 参数说明: yNumCtrl: [输入/出] 需要控制的数据
** 返回说明: None
** 创建人员: YCG
** 创建日期: 2018-12-21
********************************************************************************/
void NumAdd(Numctrl_t *yNumCtrl) {
	
    yNumCtrl->Num += yNumCtrl->Step;      //增加一个步距
	
    if(yNumCtrl->Num > yNumCtrl->Max || yNumCtrl->Num < yNumCtrl->Min) {   //循环
        yNumCtrl->Num = yNumCtrl->Min;
    }
		
}

/*******************************************************************************
** 函数名称: NumDec
** 功能描述: 自减一个步距值
** 参数说明: yNumCtrl: [输入/出] 需要控制的数据
** 返回说明: None
** 创建人员: YCG
** 创建日期: 2018-12-21
********************************************************************************/
void NumDec(Numctrl_t *yNumCtrl) {
    yNumCtrl->Num -= yNumCtrl->Step;
    if(yNumCtrl->Num > yNumCtrl->Max || yNumCtrl->Num < yNumCtrl->Min) {
        yNumCtrl->Num = yNumCtrl->Max;
    }
}

/********************************End of File************************************/

